package com.ruoyi.msg.service;

import com.ruoyi.common.core.domain.PageQuery;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.msg.domain.bo.MsgDcwjTkBo;
import com.ruoyi.msg.domain.bo.TkFormBo;
import com.ruoyi.msg.domain.vo.MsgDcwjTkVo;
import com.ruoyi.msg.domain.vo.TkXxDetailVo;

import java.util.Collection;
import java.util.List;

/**
 * 题库管理Service接口
 *
 * @author xiaohao
 * @date 2023-02-01
 */
public interface IMsgDcwjTkService {

    /**
     * 题库详情
     *
     * @param id 主键
     * @return 题库详情VO
     */
    TkXxDetailVo getDetail(Long id);

    /**
     * 题库大表单整体保存
     *
     * @param bo 大表单内容
     */
    void saveOrUpdateForm(TkFormBo bo);

    /**
     * 逻辑删除 题库+选项
     *
     * @param id 题库id
     */
    void relaDel(Long id);

    /**
     * 查询题库管理
     */
    MsgDcwjTkVo queryById(Long id);

    /**
     * 查询题库管理列表
     */
    TableDataInfo<MsgDcwjTkVo> queryPageList(MsgDcwjTkBo bo, PageQuery pageQuery);

    /**
     * 查询题库管理列表
     */
    List<MsgDcwjTkVo> queryList(MsgDcwjTkBo bo);

    /**
     * 新增题库管理
     */
    Boolean insertByBo(MsgDcwjTkBo bo);

    /**
     * 修改题库管理
     */
    Boolean updateByBo(MsgDcwjTkBo bo);

    /**
     * 校验并批量删除题库管理信息
     */
    Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);

}
